package com.maori.languageapp.image;

import java.io.InputStream;

import com.maori.languageapp.consts.Maori_Glo_Pass;

import android.graphics.Bitmap;
import android.graphics.Bitmap.Config;
import android.graphics.BitmapFactory;
import android.graphics.Canvas;
import android.graphics.Paint;
import android.graphics.PorterDuff.Mode;
import android.graphics.PorterDuffXfermode;
import android.graphics.Rect;
import android.graphics.RectF;
import android.os.AsyncTask;
import android.util.Log;
import android.widget.BaseAdapter;
import android.widget.ImageView;

public class Maori_DownloadImage  extends AsyncTask<String, Void, Bitmap>{

	ImageView myImage;
	String passurl;
	BaseAdapter adapter;

    public Maori_DownloadImage(ImageView bmImage) {
        this.myImage = bmImage;
    }
    
    @Override
    protected void onPreExecute() {
    	super.onPreExecute();
    	myImage.setImageBitmap(null);
    }

    protected Bitmap doInBackground(String... urls) {
        String urldisplay = urls[0];
        this.passurl = urls[0];
        Bitmap mIcon11 = null;
        try {
            InputStream in = new java.net.URL(urldisplay).openStream();
            mIcon11 = BitmapFactory.decodeStream(in);
        } catch (Exception e) {
            Log.e("Error", e.toString());
            e.printStackTrace();
        }
        return mIcon11;
    }

    protected void onPostExecute(Bitmap result) {
    	
    	if (result != null){
    		//myImage.setImageBitmap(result);
    		myImage.setImageBitmap(getRoundedCornerBitmap(result));
    		Maori_Glo_Pass.addImage(passurl, result);
    	}
    	
    }
    
    public static Bitmap getRoundedCornerBitmap(Bitmap bitmap) {
        Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
            bitmap.getHeight(), Config.ARGB_8888);
        Canvas canvas = new Canvas(output);
     
        final int color = 0xff424242;
        final Paint paint = new Paint();
        final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());
        final RectF rectF = new RectF(rect);
        final float roundPx = 12;
     
        paint.setAntiAlias(true);
        canvas.drawARGB(0, 0, 0, 0);
        paint.setColor(color);
        canvas.drawRoundRect(rectF, roundPx, roundPx, paint);
     
        paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
        canvas.drawBitmap(bitmap, rect, rect, paint);
     
        return output;
      }
	
}
